// ES6 之前 对象假如这样写
const name = "sanfeng_hu"
const age = 18

// 使用对象字面量定义对象
const person = {
    name: name,
    age: age,
    sayName: function() {
        console.log(`my name is ${this.name}`)
    }
}

// ES6 定义
const person1 = {
    name,
    age,
    sayName() {
        console.log(`my name is ${this.name}`)
    }
}

// 添加动态属性
// ES6 之前通过给属性赋值的方式添加动态属性
let person2 = {}
person2[Math.random()] = 123
console.log(person2)

// ES6 之后，出了“计算属性”的概念,在定义变量时直接设置动态属性
const person3 = {
    [Math.random()]: 345
}

console.log(person3)